﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using MoneyLover.WCFMoneyLover;
namespace MoneyLover.Pages
{
    public partial class Vay : PhoneApplicationPage
    {
        public Vay()
        {
            InitializeComponent();
        }
        MoneyLoverServiceClient _db = new MoneyLoverServiceClient();
        public VAY_NO _vay = new VAY_NO();
        public void  GetData()
        {
          
            _vay.TENNGUOIGD = txttennguoivay.Text.Trim();
            _vay.GHICHU = txtghichu.Text.Trim();
            _vay.LAISUAT = Double.Parse(txtlaisuat.Text.Trim());
            _vay.SOTIEN = decimal.Parse(txtsotien.Text.Trim());
            String mavay = NavigationContext.QueryString["id"];
            if (!String.IsNullOrEmpty(mavay))
            {
                _vay.MAGD = int.Parse( mavay);
            }
            //_vay.NGAYGD = DateTime.Now;
            //_vay.NGAYTRA = DateTime.Now ;
            _vay.DATRA = false;
            _vay.USERNAME = Contanst._tkdangnhap.USERNAME;
        }
        private void btnsave_Click(object sender, RoutedEventArgs e)
        {
            if (!String.IsNullOrEmpty(Invalid()))
            {
                MessageBox.Show(Invalid());
                return;
            }
            else
            {
                GetData();
                _db.InsertVayNoCompleted += _db_InsertVayNoCompleted;
                _db.InsertVayNoAsync(_vay);
            }
          

        }

        void _db_InsertVayNoCompleted(object sender, InsertVayNoCompletedEventArgs e)
        {
            if (e.Result==false)
            {
                MessageBox.Show("Thêm khoản vay không thành công");
            }
            else
            {
                MessageBox.Show("Thêm khoản vay thành công");
            }
        }
        private String Invalid()
        {
            String error = "";
            if (String.IsNullOrEmpty(txttennguoivay.Text.Trim()))
            {
                error += "\n Tên người vay không được để trống";
            }
            try
            {
                float tien = float.Parse(txtsotien.Text.Trim());
            }
            catch
            {
                error += "\n Số tiền nhập không hợp lệ";
            }
            try
            {
                float lai = float.Parse(txtlaisuat.Text.Trim());
            }
            catch
            {
                error += "\n Số tiền lãi xuất nhập không hợp lệ";
            }
            if (String.IsNullOrEmpty(txtNgayVay.Text.Trim()))
            {
                error += "\n Chưa nhập ngày vay";
            }
            else
            {
                string words = txtNgayVay.Text.Trim();
                try
                {
                    string[] split = words.Split(new Char[] { '/' });
                    int ngay = int.Parse(split[0]);
                    int Thang = int.Parse(split[1]);
                    int nam = int.Parse(split[2]);
                    _vay.NGAYGD = new DateTime(nam, Thang, ngay);
                }
                catch
                {
                    error += "\nNgày vay không hợp lệ";
                }


            }
            if (String.IsNullOrEmpty(txtNgayTra.Text.Trim()))
            {
                error += "\n Chưa nhập ngày trả";
            }
            else
            {
                string words = txtNgayTra.Text.Trim();
                try
                {
                    string[] split = words.Split(new Char[] { '/' });
                    int ngay = int.Parse(split[0]);
                    int Thang = int.Parse(split[1]);
                    int nam = int.Parse(split[2]);
                    _vay.NGAYTRA = new DateTime(nam, Thang, ngay);
                    if (_vay.NGAYTRA < _vay.NGAYGD)
                    {
                        error += "\nNgày trả không hợp lệ";
                    }
                }
                catch
                {
                    error += "\nNgày trả không hợp lệ";
                }
                if (isLaisuat.IsChecked==true)
                {
                    _vay.ISLAI = true;
                    try
                    {
                        _vay.LAISUAT=double.Parse(txtlaisuat.Text.Trim());
                        if (_vay.LAISUAT > 100)
                        {
                            error += "\nLãi suất vượt quá 100%";
                        }
                    }
                    catch 
                    {
                        error += "\nlãi suất nhập không hợp lệ";
                    }
                }
                else
                {
                    _vay.ISLAI = false;
                }


            }
            return error;
        }

        private void bntsaveandadd_Click(object sender, RoutedEventArgs e)
        {
            if (!String.IsNullOrEmpty(Invalid()))
            {
                MessageBox.Show(Invalid());
                return;
            }
            else {
                GetData();
                _db.InsertVayNoCompleted += _db_InsertVayNoCompletedAdd;
                _db.InsertVayNoAsync(_vay);
            }
         

        }
        void _db_InsertVayNoCompletedAdd(object sender, InsertVayNoCompletedEventArgs e)
        {
            if (e.Result == false)
            {
                MessageBox.Show("Thêm khoản vay không thành công");
            }
            else
            {
                NavigationService.Navigate(new Uri("/Pages/Giaodich.xaml", UriKind.Relative));
            }
        }

        private void txtNgayVay_MouseEnter(object sender, MouseEventArgs e)
        {
            txtNgayVay.Text = "";
        }

        private void txtNgayVay_MouseLeave(object sender, MouseEventArgs e)
        {
            if (String.IsNullOrEmpty(txtNgayVay.Text.Trim()))
            {
                DateTime dt = DateTime.Now;
                txtNgayVay.Text = dt.Day.ToString() + "/" + dt.Month.ToString() + "/" + dt.Year.ToString();
            }
        }

        private void txtNgayTra_MouseEnter(object sender, MouseEventArgs e)
        {
            txtNgayTra.Text = "";
        }

        private void txtNgayTra_MouseLeave(object sender, MouseEventArgs e)
        {
            if (String.IsNullOrEmpty(txtNgayTra.Text.Trim()))
            {
                DateTime dt = DateTime.Now;
                if (dt.Month != 12)
                {
                    txtNgayTra.Text = dt.Day.ToString() + "/" + (dt.Month + 1).ToString() + "/" + dt.Year.ToString();
                }
                else
                {
                    txtNgayTra.Text = dt.Day.ToString() + "/" + "1/" + dt.Year.ToString();
                }

            }
        }

        private void isLaisuat_Checked(object sender, RoutedEventArgs e)
        {
            txtlaisuat.Visibility = Visibility.Visible;
            lblaisuat.Visibility = Visibility.Visible;
            _vay.ISLAI = true; 
        }

        private void isLaisuat_Unchecked(object sender, RoutedEventArgs e)
        {
            txtlaisuat.Visibility = Visibility.Collapsed;
            lblaisuat.Visibility = Visibility.Collapsed;
            _vay.ISLAI = false;
        }

        private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
        {
            isLaisuat_Unchecked(sender, e);
            DateTime dt = DateTime.Now;
            txtNgayVay.Text = dt.Day.ToString() + "/" + dt.Month.ToString() + "/" + dt.Year.ToString();
            if (dt.Month != 12)
            {
                txtNgayTra.Text = dt.Day.ToString() + "/" + (dt.Month + 1).ToString() + "/" + dt.Year.ToString();
            }
            else
            {
                txtNgayTra.Text = dt.Day.ToString() + "/" + "1/" + dt.Year.ToString();
            }
        }
    }
}